Server-side modification of messages during a mobile terminal message exchange

ABSTRACT

A method, system, and computer program product for server-side modification of messages during a mobile terminal message exchange. Upon receiving a dialog message (e.g., an email message) from a first user device, the method determines the format (e.g., IMAP) of the dialog message in order to insert similarly-formatted additional content. Then, the method modifies the dialog message by inserting selected additional content into the dialog message. The method receives a request from a second user (at a mobile terminal) and the method transmits the outbound dialog message with the inserted additional content to the second user&#39;s mobile terminal. The second user&#39;s mobile terminal supports native applications for reviewing the additional content, and some modified dialog messages include personalized content, including personalization based on the dialog message from the first user device. The second user reviews the personalized content on the mobile terminal without having to explicitly launch a browser.

The present application claims the benefit of priority to and is a continuation-in-part of co-pending U.S. patent application Ser. No. 13/467,797, entitled “INSERTING A SEARCH BOX INTO A MOBILE TERMINAL DIALOG MESSAGING PROTOCOL”; the present application claims the benefit of priority to and is a continuation-in-part of co-pending U.S. patent application Ser. No. 13/458,686, entitled “SYSTEMS AND METHODS FOR INSERTION OF CONTENT INTO AN EMAIL OVER IMAP”; and the present application claims the benefit of priority to and is a continuation-in-part of co-pending U.S. patent application Ser. No. 13/331,262, entitled “SYSTEMS AND METHODS FOR GENERATING REVENUE BASED ON CUSTOM CLICK TO CALL ADVERTISEMENTS”, all of which are hereby incorporated by reference in their entirety.

FIELD

The present disclosure is directed towards internet messaging using mobile terminals, and more particularly towards techniques for server-side modification of messages during a mobile terminal message exchange.

BACKGROUND

Each day, hundreds of millions of internet messages (e.g., emails, SMS texts, etc.) are sent between mobile devices (e.g., smartphones, mobile terminals, etc.) by users of the internet. Thus, there exists an opportunity for a content provider to enhance the experience of the users of these mobile devices with a deeper engagement. For example, if content provider, or advertiser, or search engine provider or agent could engage the users by providing additional content (e.g., a video clip, a news clip, a financial quote or stock quotes, a social media “like” gesture, a social media alert, etc.) that is embedded in the message, then the additional content provider, or advertiser, or search engine provider could solicit hundreds of millions of new interactions each day. Yet, legacy standards and legacy implementations of mobile-to-mobile messaging do not provide for embedding such added-value content within the message itself.

What is needed are a techniques to embed “added value content” inside a message, and deliver the message over the internet to the user's mobile device, who in turn can see the added value content when viewing the message using a native messaging client (e.g., email client, SMS client, etc.).

The legacy implementations provide native email and SMS clients on various mobile terminals (e.g., Android phones, iPhones, etc.), yet such legacy implementations offer only legacy experiences to users. To improve the user experience, techniques for server-side modification of messages during a mobile terminal message exchange is needed.

Other features and advantages will be apparent from the accompanying drawings, and from the detailed description that follows below.

SUMMARY

Disclosed herein are methods, systems, and computer program products for server-side modification of messages during a mobile terminal message exchange. Upon receiving a dialog message (e.g., an email message) from a first user device, the method determines the format (e.g., IMAP) of the dialog message in order to insert similarly-formatted additional content. Then, the method modifies the dialog message by inserting selected additional content into the dialog message. The method receives a request from a second user (at a mobile terminal) and the method transmits the outbound dialog message with the inserted additional content to the second user's mobile terminal. The second user's mobile terminal supports native applications for reviewing the additional content, and some modified dialog messages include personalized content, including personalization based on the dialog message from the first user device. The second user reviews the personalized content on the mobile terminal without having to explicitly launch a browser.

BRIEF DESCRIPTION OF THE DRAWINGS

Specific embodiments and features are set forth in the appended claims. However, for purpose of explanation, several exemplary embodiments are set forth in the following figures. Like reference characters refer to corresponding parts throughout the drawings.

FIG. 1 is a data flow diagram of a system for server-side modification of messages during a mobile terminal message exchange, according to some embodiments.

FIG. 2 is a ladder diagram of a protocol for server-side modification of messages during a mobile terminal message exchange, according to some embodiments.

FIG. 3 shows an ad network environment including an additional content server for server-side modification of messages during a mobile terminal message exchange, according to some embodiments.

FIG. 4 is a graphic showing selected portions of a composition screen during a transformation for server-side modification of messages during a mobile terminal message exchange, according to some embodiments.

FIG. 5 is a graphic showing an environment for using an additional content assembly module used in a system for server-side modification of messages during a mobile terminal message exchange, according to some embodiments.

FIG. 6 is a graphic showing selected portions of a composition screen during user engagement activity while using a system for server-side modification of messages during a mobile terminal message exchange, according to some embodiments.

FIG. 7 depicts a block diagram of a system to perform certain functions of a computer system, according to some embodiments.

FIG. 8 is a flow chart representation of a process flow for server-side modification of messages during a mobile terminal message exchange, according to some embodiments.

FIG. 9 is a schematic diagram illustrating an example embodiment of an advertising network, for implementing embodiments.

FIG. 10 is a schematic diagram illustrating an example embodiment of a client device for implementing embodiments.

FIG. 11 is a block diagram of a computer system for implementing embodiments.

DETAILED DESCRIPTION

Reference will now be made to various embodiments, some examples of which are illustrated in the accompanying drawings.

Overview

Techniques for server-side modification of messages during a mobile terminal message exchange are provided herein. Implementations allow a user (e.g., a user receiving an internet message on a mobile terminal) to receive additional content (e.g., content added to the message beyond the content originally sent). The additional content serves to enhance the user experience inasmuch as the inserted content is relevant to the message dialog. The user can interact with the additional content. For example, the user can view a video clip, or see and or interact with a stock ticker, and/or search the web, and/or otherwise interact with the additional content directly from his/her messaging client (e.g., email client, SMS client, etc.).

In exemplary operation, a receiving user receives a message from a sending user as a part of message dialog involving at least one mobile terminal. Once the receiving user reviews the content sent by the sending user, the receiving user might notice the additional content embedded in the message, and might interact with the additional content to perform the aforementioned activities. For example, the inserted additional content might include a URL attached to an object in the inserted content, and the URL might serve to link to still more related material. Or, the URL might be used by a user to initiate search activities (e.g., querying, reviewing search results, etc.). For example, user “Bob” might send a message to user “Alice”, which message Alice receives on her mobile terminal. The message might read: “Alice: Let's visit ‘Sacre Ceour’ in Paris—Luv, Bob”. Alice might read Bob's message and notice the additional content embedded in the message. For example, the additional content might be still photos, and/or a link to information regarding “Sacre Ceour”. Or, the additional content might comprise a pre-populated query to a search engine (see the example of FIG. 6). Alice can easily initiate a web search for “Sacre Ceour” directly from the embedded additional content that was inserted into Bob's message.

Of course, the foregoing is but one exemplary use case, and additional use cases, additional features, and additional implementation techniques are presented herein. For instance, in some embodiments, when a user does decide to interact with the additional content, embedded code (e.g., HTML) that was inserted with the formatting of the additional content might prompt the user to select a default search provider. In such a case, HTML that was inserted with the formatting of the additional content might prompt the user to view a video. Also, in some embodiments, the additional content can be pre-populated with specific content that can be determined and/or selected or otherwise driven by the occurrence of words or other characteristics found in a user's message. A related example is further described in the context of FIG. 6.

Now, pertaining to mobile terminals (e.g., smartphones, iPads, etc.), many native third-party email clients are delivered with or on the mobile terminal as a “stock” application to process messages for their users via a “fetch” of the message (e.g., email) over IMAP using an IMAP server. In other situations email or other messaging content is pushed from a server to the “stock” application. In some embodiments, a server performs operations for populating the additional content with text at least partly based on the dialog message from a first user. In exemplary embodiments, an HTML-5 additional content is inserted dynamically into the body of the message. In some cases, the additional content is pre-populated with context-driven content based on terms present in the user's current message (or possibly pre-populated with context-related content based on terms found in a previously received message). That is, in this or other cases, the additional content may be presented in the form of context-driven content based on terms present in the user's message or thread. This supports an ecosystem where email or other messaging delivery can be highly personalized at the election of the user or authorized agents.

As can now be seen, the user can interact with the additional content directly from the message without having to leave the native email or messaging client in order to explicitly open a separate application (e.g., a browser). Thus the user experience is greatly enhanced, firstly by having the convenience of the presence of the additional content in the content (and ease of initiating interaction with the additional content), and secondly by virtue of the context and relevance of the additional content.

Reference will now be made in further detail to various embodiments, some examples of which are illustrated in the accompanying drawings. It will be understood that the described embodiments are not intended to limit the scope of the claims. On the contrary, the embodiments are intended to cover alternatives, modifications and equivalents, which may be included within the scope of the appended claims. Furthermore, in the following detailed descriptions, numerous specific details are set forth in order to provide a thorough understanding of the exemplary embodiments. However, one of ordinary skill in the art can recognize that the present advances may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail so as avoid unnecessarily obscuring aspects of the described embodiments.

Throughout the specification and claims, terms may have nuanced meanings suggested or implied in context beyond an explicitly stated meaning. Likewise, the phrase “in one embodiment” as used herein does not necessarily refer to the same embodiment and the phrase “in another embodiment” as used herein does not necessarily refer to a different embodiment. It is intended, for example, that claimed subject matter includes combinations of example embodiments in whole or in part.

In general, terminology may be understood, at least in part, from usage in context. For example, terms such as “and”, “or”, or “and/or” as used herein may include a variety of meanings that may depend at least in part upon the context in which such terms are used. Typically, “or”, if used to associate a list (for example, a list such as A, B or C) is intended to mean A, B, and C, here used in the inclusive sense, as well as A, B or C, here used in the exclusive sense. In addition, the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures, or characteristics in a plural sense. Similarly, terms such as “a,” “an,” or “the” may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context. In addition, the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for the existence of additional factors not necessarily expressly described, depending at least in part on context.

Some portions of the detailed descriptions which follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., as may be used herein is generally conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present disclosure, discussions using terms such as “processing” or “computing” or “communicating” or “instantiating” or “registering” or “selecting”, or “displaying” or the like, refer to the action and processes of a computer system or similar electronic computing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

Subject matter will now be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific example embodiments. Subject matter may, however, be embodied in a variety of different forms and, therefore, covered or claimed subject matter is intended to be construed as not being limited to any example embodiments set forth herein; example embodiments are provided merely to be illustrative. Likewise, a reasonably broad scope for claimed or covered subject matter is intended. Among other things, for example, subject matter may be embodied as methods, devices, components, or systems. Accordingly, embodiments may, for example, take the form of hardware, software, firmware or any combination thereof (other than software per se). The following detailed description is, therefore, not intended to be taken in a limiting sense.

Section I: General Terms

Some of the terms used in this description are defined below (in alphabetical order) for easy reference. These terms are not rigidly restricted to these definitions. A term may be further defined by the term's use in other sections of this description.

“Ad” (e.g., ad, item and/or message) means a paid announcement, as of goods or services for sale, preferably on a network such as the internet. An ad may also be referred to as an item and/or a message.

“Ad call” means a message sent by a computer to an ad server for requesting an ad to be displayed.

“Ad click-through rate” (e.g., click-through rate) means a measurement of ad clicks per a period of time.

“Ad code” means the HTML or other markup language description that describes an advertisement or message in such a manner as can be parsed by a browser. Ad code may include references to other ad code. Ad code may mean any subset or portion or segment of ad code that describes an advertisement or message in such a manner as can be parsed by a browser.

An “Ad server” comprises a server that stores online advertisements for presentation to users. “Ad serving” refers to methods used to place online advertisements on websites, in applications, or other places where users are more likely to see them such as during an online session or during computing platform use, for example. During presentation of advertisements, a presentation system may collect descriptive content about types of advertisements presented to users. A broad range of descriptive content may be gathered, including content specific to an advertising presentation system. Advertising analytics gathered may be transmitted to locations remote to an advertising presentation system for storage or for further evaluation. Where advertising analytics transmittal is not immediately available, gathered advertising analytics may be stored by an advertising presentation system until transmittal of those advertising analytics becomes available.

“Advertiser” (e.g., messenger and/or messaging customer, etc.) means an entity that is in the business of marketing a product and/or a service to users. An advertiser may include, without limitation, a seller and/or a third-party agent for the seller. An advertiser may also be referred to as a messenger and/or a messaging customer. Advertising may also be referred to as messaging.

“Advertising” means marketing a product and/or service to one or more potential consumers by using an ad. One example of advertising is publishing a sponsored search ad on a website.

“Ad targeting” or “targeting” refers to web portals like Yahoo!, where advertisements may be displayed on web pages resulting from a user-defined search based at least in part upon one or more search terms. Advertising may be beneficial to users, advertisers, or web portals if displayed advertisements are relevant to interests of one or more users. Thus, a variety of techniques have been developed to infer user interest, user intent, or to subsequently target relevant advertising to users. One approach to presenting targeted advertisements includes employing demographic characteristics (e.g., age, income, sex, occupation, etc.) for predicting user behavior, such as by a group. Advertisements may be presented to users in a targeted audience based at least in part upon predicted user behavior(s). Another approach includes profile-type ad targeting. In this approach, user profiles specific to a user may be generated to model user behavior, for example, by tracking a user's path through a web site or network of sites, and compiling a profile based at least in part on pages or advertisements ultimately delivered. A correlation may be identified, such as for user purchases, for example. An identified correlation may be used to target potential purchasers by targeting content or advertisements to particular users.

“Application server” is a server that is configured for running one or more devices loaded onto the application server. For example, an application server may run a device configured for deducing shadow profiles.

“Click” (e.g., ad click) means a selection of an ad impression by using a selection device such as, for example, a computer mouse or a touch-sensitive display.

“Client” means the client part of a client-server architecture. A client is typically a user device and/or an application that runs on a user device. A client typically relies on a server to perform some operations. For example, an email client is an application that enables a user to send and receive email via an email server. In this example, the computer running such an email client may also be referred to as a client.

A “Computing device” means a computing device that may be capable of sending or receiving signals such as via a wired or wireless network, or may be capable of processing or storing signals such as in memory as physical memory states, and may, therefore, operate as a server. Thus, devices capable of operating as a server may include, as examples, dedicated rack-mounted servers, desktop computers, laptop computers, set top boxes, integrated devices combining various features such as two or more features of the foregoing devices, or the like.

A “Content server” is a server that may include a device that includes a configuration to provide content via a network to another device. A content server may, for example, host a site such as a social networking site, examples of which may include, without limitation, Flicker, Twitter, Facebook, LinkedIn, or a personal user site (such as a blog, vlog, online dating site, etc.). A content server may also host a variety of other sites, including, but not limited to, business sites, educational sites, dictionary sites, encyclopedia sites, wikis, financial sites, government sites, etc.

A content server may further provide a variety of services that include, but are not limited to, web services, third-party services, audio services, video services, email services, instant messaging (IM) services, SMS services, MMS services, FTP services, voice over IP (VOIP) services, calendaring services, photo services, or the like. Examples of content may include text, images, audio, video, or the like, which may be processed in the form of physical signals such as electrical signals, for example, or may be stored in memory as physical states, for example.

Examples of devices that may operate as a content server include desktop computers, multiprocessor systems, microprocessor-type or programmable consumer electronics, etc.

“Conversion” (e.g., ad conversion) means a purchase of a product/service that happens as a result of a user responding to an ad and/or a coupon.

A “Content delivery network” or “content distribution network” (CDN) refers to a distributed content delivery system that comprises a collection of computers or computing devices linked by a network or networks. A CDN may employ software, systems, protocols or techniques to facilitate various services such as storage, caching, communication of content, or streaming media or applications. Services may also make use of ancillary technologies including, but not limited to, “cloud computing,” distributed storage, DNS request handling, provisioning, signal monitoring and reporting, content targeting, personalization, or business intelligence. A CDN may also enable an entity to operate or manage another's site infrastructure in whole or in part.

“Coupon” (e.g., coupon ad) means a portion of a certificate, ticket, label, ad or the like—set off from the main body by dotted lines or the like to emphasize its separability—entitling the holder to something such as a gift or discount, or for use as an order blank or a contest entry form, etc. A coupon is designed in a convenient format for a user to “take” the coupon to a seller to receive an advertised benefit.

“Database” (e.g., database system, etc.) means a collection of data organized in such a way that a computer program may quickly select desired pieces of the data. A database is an electronic filing system. In some instances, the term “database” is used as shorthand for a “database management system”. A database may be implemented as any type of data storage structure capable of providing for the retrieval and storage of a variety of data types. For instance, a database may comprise one or more accessible memory structures such as a CD-ROM, tape, digital storage library, flash drive, floppy disk, optical disk, magnetic-optical disk, erasable programmable read-only memory (EPROM), random access memory (RAM), magnetic or optical cards, etc.

“Device” means hardware, software or a combination thereof. A device may sometimes be referred to as an apparatus. Examples of a device include, without limitation, a software application such as Microsoft Word™ or a database; or hardware such as a laptop computer, a server, a display; or a computer mouse and/or a hard disk.

“Impression” (e.g., ad impression) means a delivery of an ad to a user device for viewing by a user.

The “Internet” or “internet” refers to a decentralized global network of networks. The internet includes local area networks (LANs), wide area networks (WANs), wireless networks, or long haul public networks that, for example, allow signal packets to be communicated between LANs. Signal packets may be communicated between nodes of a network such as, for example, to one or more sites employing a local network address. A signal packet may, for example, be communicated over the internet from a user site via an access node coupled to the internet. Likewise, a signal packet may be forwarded via network nodes to a target site coupled to the network via a network access node, for example. A signal packet communicated via the internet may, for example, be routed via a path of gateways, servers, etc. that may route the signal packet in accordance with a target address and the availability of a network path to the target address.

“Item” means an ad, which is defined above.

“Marketplace” means a world of commercial activity where products and/or services are browsed, bought and/or sold, etc. A marketplace may be located over a network such as the internet. A marketplace may also be located in a physical environment such as a shopping mall.

“Message” means an ad, which is defined above.

“Messaging” means advertising, which is defined above.

“Messenger” means an advertiser, which is defined above.

“Monetization techniques” or “monetization models” refers to techniques used in connection with sponsored search advertising, including advertising associated with user search queries, or non-sponsored search advertising, including graphical or display advertising. In an auction-type online advertising marketplace, advertisers may bid in connection with placement of advertisements, although other factors may also be included in determining advertisement selection or ranking. Bids may be associated with amounts advertisers pay for certain specified occurrences such as for placed or clicked-on advertisements, for example. Advertiser payment for online advertising may be divided between parties including one or more publishers or publisher networks, one or more marketplace facilitators or providers, or potentially among other parties.

Some models may include guaranteed delivery advertising in which advertisers may pay based at least in part on an agreement guaranteeing or providing some measure of assurance that the advertiser will receive a certain agreed upon amount of suitable advertising, or non-guaranteed delivery advertising, which may include individual serving opportunities or spot market(s), for example. In various models, advertisers may pay based at least in part on any of various metrics associated with advertisement delivery or performance, or associated with measurement or approximation of particular advertiser goal(s). For example, models may include, among other things, payment based at least in part on cost per impression or number of impressions, cost per click or number of clicks, cost per action for some specified action(s), cost per conversion or purchase, or cost based at least in part on some combination of metrics, which may include online or offline metrics, for example. A process of buying or selling online advertisements may involve a number of different entities including advertisers, publishers, agencies, networks, or developers. To simplify this process, organization systems called “ad exchanges” may associate advertisers or publishers, such as via a platform, to facilitate buying or selling of online advertisement inventory from multiple ad networks. “Ad networks” refers to an aggregation of ad space supply from publishers such as for provision en masse to advertisers.

“Network” means a connection, between any two or more computers, that permits the transmission of data. A network may be any combination of networks including, without limitation, the internet, a local area network, a wide area network, a wireless network, and/or a cellular network.

A “Network” means a network that may couple devices so that communications may be exchanged such as between a server and a client device or other types of devices, including between wireless devices coupled via a wireless network, for example. A network may also include mass storage such as network attached storage (NAS), a storage area network (SAN), or other forms of computer or machine readable media, for example. A network may include the internet, one or more local area networks (LANs), one or more wide area networks (WANs), wire-line type connections, wireless type connections, or any combination thereof. Likewise, sub-networks such as may employ differing architectures or may be compliant or compatible with differing protocols, may interoperate within a larger network. Various types of devices may, for example, be made available to provide an interoperable capability for differing architectures or protocols. As one illustrative example, a router may provide a link between otherwise separate and independent LANs.

A communication link or channel may include, for example, analog telephone lines such as a twisted wire pair, a coaxial cable, full or fractional digital lines including T1, T2, T3, or T4 type lines, integrated services digital networks (ISDNs), digital subscriber lines (DSLs), wireless links including satellite links, or other communication links or channels such as may be known to those skilled in the art. Furthermore, a computing device or other related electronic devices may be remotely coupled to a network such as via a telephone line or link, for example.

A wireless network may couple client devices with a network. A wireless network may employ stand-alone ad-hoc networks, mesh networks, wireless LAN (WLAN) networks, cellular networks, or the like. A wireless network may further include a system of terminals, gateways, routers, or the like coupled by wireless radio links, or the like, which may move freely, randomly or organize themselves arbitrarily, such that network topology may change, at times even rapidly. A wireless network may further employ a plurality of network access technologies, including long term evolution (LTE), WLAN, wireless router (WR) mesh, or 2nd, 3rd, or 4th generation (2G, 3G, or 4G) cellular technology, or the like. Network access technologies may enable wide area coverage for devices, such as client devices with varying degrees of mobility, for example.

For example, a network may enable RF or wireless type communication via one or more network access technologies such as global system for mobile communication (GSM), universal mobile telecommunications system (UMTS), general packet radio services (GPRS), enhanced data GSM environment (EDGE), 3GPP long term evolution (LTE), LTE advanced, wideband code division multiple access (WCDMA), Bluetooth, 802.11b/g/n, or the like. A wireless network may include virtually any type of wireless communication mechanism by which signals may be communicated between devices such as a client device or a computing device, between or within a network, or the like.

Signal packets communicated via a network, such as a network of participating digital communication networks, may be compatible with or compliant with one or more protocols. Signaling formats or protocols employed may include, for example, TCP/IP, UDP, DECnet, NetBEUI, IPX, Appletalk, or the like. Versions of the internet protocol (IP) may include IPv4 or IPv6.

A “peer-to-peer network” or “P2P network” may employ computing power or bandwidth of network participants in contrast with a network that may employ dedicated devices such as dedicated servers, for example; however, some networks may employ both as well as other approaches. A P2P network may typically be used for coupling nodes via an ad hoc arrangement or configuration. A peer-to-peer network may employ some nodes capable of operating as both a “client” and a “server.”

“Publisher” means an entity that publishes, on a network, a web page having content and/or ads, etc. ad/or publishes, on a network, a downloadable application and/or other digital context having digital content and/or digital ads, etc.

“Server” means a software application that provides services to other computer programs (and their users) on the same computer or on another computer or computers. A server may also refer to the physical computer that has been set aside to run a specific server application. For example, when the software Apache HTTP server is used as the web server for a company's website, the computer running Apache may also be called the web server. Server applications may be divided among server computers over an extreme range, depending upon the workload. Servers may vary widely in configuration or capabilities, but generally a server may include one or more central processing units and memory. A server may also include one or more mass storage devices, one or more power supplies, one or more wired or wireless network interfaces, one or more input/output interfaces, or one or more operating systems such as Windows Server, Mac OS X, Unix, Linux, FreeBSD, or the like.

“Social network” or “social networking website” refers generally to a network of individuals such as acquaintances, friends, family, colleagues, or co-workers, coupled via a communications network or via a variety of sub-networks. Potentially, additional relationships may subsequently be formed as a result of social interaction via the communications network or sub-networks. A social network may be employed, for example, to identify additional connections for a variety of activities, including, but not limited to, dating, job networking, receiving or providing service referrals, content sharing, creating new associations, maintaining existing associations, identifying potential activity partners, performing or supporting commercial transactions, or the like.

A social network may include individuals with similar experiences, opinions, education levels or backgrounds. Subgroups may exist or be generated according to user profiles of individuals, for example, in which a subgroup member may belong to multiple subgroups. An individual may also have multiple “1:few” associations within a social network such as for family, college classmates, or co-workers.

An individual's social network may refer to a set of direct personal relationships or a set of indirect personal relationships. A direct personal relationship refers to a relationship for an individual in which communications may be individual-to-individual such as with family members, friends, colleagues, co-workers, or the like. An indirect personal relationship refers to a relationship that may be available to an individual with another individual although no form of individual-to-individual communication may have taken place such as a friend of a friend, or the like. Different privileges or permissions may be associated with relationships in a social network. A social network also may generate relationships or connections with entities other than a person such as companies, brands, or so-called ‘virtual persons.’ An individual's social network may be represented in a variety of forms such as visually, electronically or functionally. For example, a “social graph” or “socio-gram” may represent an entity in a social network as a node and may represent a relationship as an edge or a link.

Individuals within one or more social networks may interact or communicate with other members of a social network via a variety of devices. Multi-modal communication technologies refers to a set of technologies that permit interoperable communication across multiple devices or platforms such as cell phones, smartphones, tablet computing devices, personal computers, televisions, SMS/MMS, email, instant messenger clients, forums, social networking sites (such as Facebook, Twitter, Google+, etc.), or the like.

“Software” means a computer program that is written in a programming language that may be used by one of ordinary skill in the art. The programming language chosen should be compatible with the computer on which the software application is to be executed and, in particular, with the operating system of that computer. Examples of suitable programming languages include, without limitation, Object Pascal, C, C++, and/or Java. Further, the functions of some embodiments, when described as a series of steps for a method, could be implemented as a series of software instructions for being operated by a processor such that the embodiments could be implemented as software, hardware, or a combination thereof. Computer-readable media are discussed in more detail in a separate section below.

“System” means a device or multiple coupled devices. A device is defined above.

“User” (e.g., consumer, etc.) means an operator of a user device. A user is typically a person who seeks to acquire a product and/or service. For example, a user may be a person who is browsing Yahoo!™ Shopping for a new cell phone to replace their current cell phone. The term “user” may also refer to a user device, depending on the context.

“User device” (e.g., computer, user computer, client and/or server, etc.) means a single computer or a network of interacting computers. A user device is a computer that a user may use to communicate with other devices over a network such as the internet. A user device is a combination of a hardware system, a software operating system, and perhaps one or more software application programs. Examples of a user device include, without limitation, a laptop computer, a palmtop computer, a smartphone, a cell phone, a mobile phone, an IBM-type personal computer (PC) having an operating system such as Microsoft Windows™, an Apple™ computer having an operating system such as MAC-OS, hardware having a JAVA-OS operating system, and/or a Sun Microsystems™ workstation having a UNIX operating system.

“Web browser” means a software program that may display text or graphics or both from web pages on websites. Examples of a web browser include, without limitation, Mozilla Firefox™ and Microsoft Internet Explorer™.

“Web page” means documents written in a mark-up language including, without limitation, HTML (hypertext mark-up language), VRML (virtual reality modeling language), dynamic HTML, XML (extensible mark-up language), and/or other related computer languages. A web page may also refer to a collection of such documents reachable through one specific internet address and/or through one specific website. A web page may also refer to any document obtainable through a particular URL (uniform resource locator).

“Web portal” (e.g., public portal) means a website or service that offers a broad array of resources and services such as, for example, email, forums, search engines, and online shopping malls. The first web portals were online services, such as AOL, that provided access to the web. However, now, most of the traditional search engines (e.g., Yahoo!™) have transformed themselves into web portals to attract and keep a larger audience.

“Web server” is a server configured for serving at least one web page to a web browser. An example of a web server is a Yahoo!™ web server. A server is defined above.

Section II: Descriptions of the Figures

FIG. 1 is a data flow diagram of a system for server-side modification of messages during a mobile terminal message exchange. As an option, the present environment 100 may be implemented in the context of the architecture and functionality of the embodiments described herein. Of course, however, the environment 100 or any operation therein may be carried out in any desired environment.

FIG. 1 is an example embodiment of an environment 100 for server-side modification of messages during a dialog message over an internet messaging protocol in accordance with some embodiments of the disclosure. As shown at the left side of the diagram, a user 105 interacts with an opt-in confirmation module 111. When the user confirms his/her opt-in, the confirmation is stored in an opt-in repository 112, which opt-in repository is accessible to a server in the environment (e.g., an internet messaging protocol server 120 ₁). In some cases the server comprises an internet messaging server that receives a dialog message from a sending user 105 via a first user device 102. In other cases the server is a server in the environment that is configured to modify the dialog message by inserting additional content (e.g., an additional content server 120 ₂). One or both of the servers are configured to transmit the modified dialog message 170 to a mobile terminal.

As seen in FIG. 1, the environment 100 may comprise multiple servers (e.g., internet messaging protocol server 120 ₁, additional content server 120 ₂, etc.). In some embodiments, a server 120 may comprise a dialog message server in the form of an IMAP server or other internet messaging protocol server that receives one or more dialog messages from users and stores the dialog messages to be viewed and/or transmitted to other users. The server 120 may receive a dialog message 140 from a first user 105. In some embodiments, the first user 105 (e.g., a first sending user) may use a computer and/or a smartphone (e.g., a first user device). The first user 105 may compose a portion of a dialog message intended to be read by the second user 130. In some embodiments, a dialog message 140 from the first user 105 may be transmitted to the server 120 and the dialog message 140 may then be modified by the server to form a modified dialog message 170 (e.g., with inserted additional content 150 and/or other content such as an advertisement), which may then be transmitted to the second user 130. In some embodiments, the second user 130 may comprise a smartphone running a native dialog message client application (e.g., an email client, an SMS client). The server 120 may insert an instance of an inserted additional content 150 into the dialog message 140 as received from (e.g., composed by) the first user 105 and then transmit the dialog message with the aforementioned instance of an inserted additional content 150 to the second user 130. In some cases (e.g., in response to a POP request) the second user 130 may receive the dialog message with the aforementioned instance of an inserted additional content 150 in response to a request from the second user device 106 to view unread messages.

As shown, the environment 100 comprises two servers, however the shown two servers can be implemented using a single physical server, or the servers can be separate physical servers. In an exemplary embodiment, a first server may insert additional content (e.g., a video, a photo montage, etc.) into a dialog message, and further additional content (e.g., an advertisement) can be inserted by a second server. In this and other embodiments, when the server is inserting the additional content and/or additional content into a dialog message, the server(s) can carry out the insertion by way of an internet messaging protocol. Thus, content may be placed into dialog messages regardless of the type of device that users may use to send and/or receive dialog messages.

A dialog message composition screen 160 may comprise a dialog message written by a first user (e.g., a written dialog message 110). As used herein, a written dialog message 110 does not comprise the aforementioned additional content or an advertisement or other content inserted over an internet messaging protocol. However, as used herein a modified dialog message 170 can comprise the aforementioned additional content and/or additional content.

More particularly, and as shown, in FIG. 1, the dialog message composition screen 160 may comprise a written dialog message 110, which written dialog message 110 comprises at least a portion of the dialog message 140. In some embodiments, the written dialog message may comprise identifiable subject matter (e.g., topics) that may be used to determine additional content, which additional content can comprise additional content in the form of a search box, and/or pre-populated text within the search box, an advertisement, etc.

In some cases, the additional content is formatted as dynamic HTML tags inserted into the dialog message 140. And, an exchange of messages can occur synchronously or asynchronously, and delivery can be via the techniques of “push” or “fetch”. Following a fetch protocol, a user 130 (e.g., via a user device 106) may transmit a request to receive any dialog messages, and when any are available, they can be sent with the inserted content.

In some embodiments, the server 120 may insert content using a dynamic HTML format. For example, the content may be generated as dynamic HTML tags. The server 120 may insert the additional content and corresponding content by inserting dynamic HTML tags into a dialog message protocol corresponding to the dialog message 140. For example, the dialog message 140 transmitted by the first user 105 may be stored on the server and may be transmitted to the second user 130 in accordance with a particular dialog message protocol. To continue the example, when the second user 130 requests the dialog message 140 that is stored on the server 120, the dialog message with the inserted additional content may be transmitted based on an internet message access protocol (IMAP), and any additional content, including any HTML tags may be inserted into an internet messaging protocol corresponding to the dialog message 140. In some embodiments, the dialog message with the additional content may be received in a first internet messaging protocol and then transmitted based on another dialog message protocol such as the post office protocol (POP). Similarly, the additional content may also be inserted into a dialog message corresponding to a first internet messaging protocol and transmitted using a second internet messaging protocol. Thus, the insertion of the additional content may be considered to be independent of the type of user device, and independent of the internet messaging protocol, and independent of the native dialog messaging application that a user may use on the device in order to read his or her messages. In some use models, a user (e.g., user 130) can review his or her messages and can then use the inserted additional content in order to enter a period of user engagement activity 180. In some use models, a user (e.g., user 130) can conclude a user engagement activity 180 and perform a reply activity 190, possibly including a reply message 135, and possibly using any results of the user engagement activity 180.

FIG. 2 is a ladder diagram of a protocol 200 for server-side modification of messages during a mobile terminal message exchange. As an option, the present protocol 200 may be implemented in the context of the architecture and functionality of the embodiments described herein. Of course, however, the protocol 200 or any operation therein may be carried out in any desired environment.

As shown, the protocol serves to carry out a method to insert additional content into a dialog message when communicating a message between one user device (e.g., a sender-receiver 202) and another user device (e.g., a receiver-sender 206). In the portion of the protocol exchange shown, a sender-receiver 202 (e.g., a mobile user device) forms a dialog message (see operation 212) and sends the dialog message (see message 213) to a server 120. The server 120 in turn executes program code for receiving the dialog message from the sender-receiver 202. The dialog message may comprising a plurality of portions of content, including a written dialog message 110, and any other formatting and/or content as may be applicable to the specific format of the internet protocol used. The server 120 stores the inbound instance of the dialog message from the sender-receiver (see operation 214), at least to analyze the inbound dialog message to determine the format of the inbound dialog message (see operation 216 and operation 217). For example, the inbound dialog message might be in an IMAP format, and/or it might be encoded using UNICODE, and/or it might have other characteristics or formats that can be determined by the server 120.

In some cases, such as in a POP situation where the email is to be stored until retrieved, the server 120 will store the inbound dialog message until such a retrieval request is received. Such a request can come from a receiver-sender 206 at any point in time once the receiver-sender 206 has established a connection (see operation 232). If there is a stored dialog message intended for the receiver-sender, then the server can respond by modifying a portion of the dialog message to generate an outbound dialog message having additional content inserted using the additional content format.

In exemplary cases, the server 120 can extract data from opt-in portions of the inbound dialog message (see operation 218). It is possible that the opt-in confirmation specifies that only certain portions the dialog are to be read by the server. In such a case the opt-in limitations are observed, and the server accesses only the portion permitted by the user. Further, in some cases, both the sending user and receiving user can separately specify opt-in “allow” or “deny” characteristics, and the server 120 serves to reconcile the opt-in characteristics such that neither the sending user's opt-in options nor the receiving user's opt-in options are violated.

Continuing, once the “allow” or “deny” characteristics have been reconciled, and properly accessible data has been extracted from the inbound dialog message, the server 120 serves to select additional content based on the extracted data (see operation 219). The server 120 might communicate with a process (possibly on a different server) to determine any context-dependent or other relevancies. A wide variety of additional content is available for insertion, and the server 120 might observe a protocol to communicate with one or more components of an ad server network, and or a content distribution network (see FIG. 3). When at least some additional content is available for insertion, the additional content is inserted into the inbound dialog message to form an outbound dialog message (see operation 220). In some cases, the outbound dialog message can become large (e.g., after insertion of the additional content), and might again be stored, even if temporarily (see operation 222).

Upon receiving a request from a second user for the dialog message (see message 243), the server begins transmitting (see message 224) the outbound dialog message with the inserted additional content to the second user. The user of the mobile terminal embodying the receiver-sender 206 can review the contents of the received outbound message and can use the inserted additional content in order to initiate user engagement activity. Of course, the receiver-sender 206 can also take on the role of sender-receiver, and upon receiving the outbound dialog message), the receiver-sender 206 can form a dialog message to send to some recipient) and send a dialog message to the server 120.

FIG. 3 shows an ad network environment for server-side modification of messages during a mobile terminal message exchange. As an option, the present ad network environment 300 may be implemented in the context of the architecture and functionality of the embodiments described herein.

As shown, the ad network environment 300 includes an additional content server 120 ₂ for server-side modification of messages during a mobile terminal message exchange. An internet content provider may operate a particular property (e.g., Yahoo.com, www.disney.com, etc.) and host content in a base content server, and an additional content server 120 ₂ may generate an advertisement such that whenever any internet user, via a mobile terminal (e.g., mobile terminal 305 ₁, mobile terminal 305 ₂, etc.) or any other client device (e.g., as further described herein), brings up a browser to access a web page from the selected property, the advertisement is composited on the web page. The base content and advertisement is packaged for delivery to a mobile terminal 305 over a network 302. Given this generalized delivery model, and using techniques disclosed herein, content-rich internet messaging might be practiced. More particularly, the ad network environment serves to perform server-side modification of messages during a mobile terminal message exchange.

Again referring to FIG. 3, an advertisement serving module 318 can be configured to measure the characteristics of visitors (which visitors may have any arbitrary interest, demographic, target predicates, or other attributes) and can store such measurements in a historical dataset 320. Thus, one internet user's interests (or a group of similarly grouped internet users) might share some set of demographics or other attributes might be known in quite some detail, and a campaign management module 312 might keep track of such demographics or other attributes. In some cases, a campaign forecast generation module 322 might forecast a future supply of impressions that accord to those attributes (see forecasted supply of impressions 314). Thus, relevance can be estimated or determined on the basis of observations stored in the historical dataset. More specifically, a user's clicks (e.g., the likelihood of a click on an ad, or the likelihood of a user action based on an ad) or other responses to an internet advertisement might also be known in quite some detail, not only for a particular user, but also for a group of users corresponding to a particular subset of the available data, and a campaign forecast generation module might use such a particular subset of the available data for forecasting a future supply of impressions where the forecast of a future supply of impressions is organized into groups, the members of the groups being impressions satisfying a particular target predicate. For example, a future supply of impressions may be organized into groups corresponding to a demographic of interest to an advertiser (e.g., “(GENDER=male && AGE=21)”).

In some cases certain process for forecasting a future supply of impressions includes pricing, which pricing might be determined in part by interrogating an auction engine server 304 with one or more bids. In the depicted ad server network, the aforementioned bids are provided to an advertisement bidding module 309, and bids are submitted to an auction engine server 304.

In exemplary embodiments, any of the aforementioned techniques for identifying additional content can be used and, given some choices, a selected content serving module 370 serves to select one or more objects (e.g., advertisements, announcements, etc.) to be composited, and can pass the select one or more objects to an additional content assembly module 372. The additional content assembly module in turn can serve to composite the selected objects together with components of the dialog message for subsequent transmission as an outbound dialog message (again see operation 224).

FIG. 4 is a graphic showing selected portions of a composition screen during a transformation 400 for server-side modification of messages during a mobile terminal message exchange. As an option, the present transformation 400 of a dialog message 140 into a modified dialog message 170 may be implemented in the context of the architecture and functionality of the embodiments described herein. Of course, however, the transformation 400 or any operation therein may be carried out in any desired environment.

The graphic of FIG. 4 shows a portion of a dialog message composition screen 160. Included in the dialog message composition screen is a dialog area 410. Such a dialog area 410 can contain a message or portion of a message to be read (e.g., by a user), possibly including a user's written dialog message 110, or portion thereof. The graphic of FIG. 4 also shows an exemplary instance of an insertion area 420. The insertion area serves to present additional content, possibly pre-populated with context-driven terms based on the user's message. In exemplary cases, the context-driven content provided in the insertion area is based on terms present in the user's message (e.g., terms found within the dialog area 410).

The insertion area can be presented below the dialog area, or to the right of the dialog area, or can overlap the dialog area (as shown), or can be presented in any juxtaposition with respect to the dialog area. The aspect ratio can be portrait, or landscape, or 16:9 or VGA, or any other aspect ratio. Moreover the size of the inserted additional content can vary, depending on the characteristics of the user device, and depending on the characteristics of the dialog message composition screen 160.

Embodiments described herein can modify the dialog message by changing the size of any portion of the dialog message. In particular, some embodiments can change the size of the dialog area 410 when generating a modified dialog message 170. The size of the inserted additional content and any other content in the insertion area can be determined dynamically, and the content (e.g., relevant content) and/or any text provided in a pre-populated additional content area can be determined dynamically. More specifically, some embodiments include a variable amount of inserted additional content 150, and some embodiments can pre-populate a search box 480 with text that is at least partly based on the dialog message. The aspect of the dialog message upon which is based the text to pre-populate the search box can be textual or can be graphical. For example, if a dialog message contains a particular emoticon (e.g., a happy face, a social network emoticon, etc.), a sentiment can be inferred, and a separate server can perform selection of additional content to be served to the mobile terminal user. In some cases a search box can be presented along with an advertisement (e.g., in the proximity of or within the bounds of insertion area 420). For example, and as shown, the modified dialog message 170 contains an exemplary instance of an insertion area 420 that contains an advertisement for, “That '70s Show”. The additional content in insertion area 420 can comprise a pre-populated instance of search box 480 (as shown).

In some embodiments, the dialog message is formatted to comport with an internet messaging protocol, and such a format may comprise HTML content. A server may scan and/or identify contents and sizes of the contents of the dialog message, and can perform HTML analysis and insertion of HTML to generate a modified dialog message 170. In particular, the format of a dialog message can influence the selection of additional content to be assembled and served to the mobile terminal user.

FIG. 5 is a graphic showing an environment 500 for using an additional content assembly module used in a system for server-side modification of messages during a mobile terminal message exchange, according to some embodiments. As an option, the present environment 500 may be implemented in the context of the architecture and functionality of the embodiments described herein.

Given the capability to insert HTML, and/or to insert a script, it is possible to interact with the user via the formatting of, and/or embedded code within, the additional content (e.g., formatting comprising HTML-5, formatting comprising scripts, etc.). In some embodiments, when a user decides to interact with the additional content, embedded code that was inserted along with the formatting of the additional content might launch a browser on the user's device, which in turn might prompt the user to select display aspects (e.g., full-screen, split screen, etc.) of the additional content.

As shown, the additional content can be managed by the additional content assembly module 372, which in turn can manage a variety of additional content (e.g., a video clip, a news clip, a financial quote or stock quotes, a social media “like” gesture, a social media alert, etc.) that). For example, and strictly as examples, the additional content can be retrieved from repositories comprising:

A video content repository 521

A finance/quote content repository 522

A news content repository 523

A photo content repository 524

A social media content repository 525

A subscription content repository 526

An alert content repository 527

FIG. 6 is a graphic 600 showing selected portions of a composition screen during user engagement activity while using a system for server-side modification of messages during a mobile terminal message exchange. As an option, the present search activity may be implemented in the context of the architecture and functionality of the embodiments described herein.

As shown, the graphic depicts an activity that comprises search activities where a user uses a keyboard 610 to enter (or confirm) a search query text into the additional content (e.g., see search query text “Sacre Ceour” 380 as shown). The user then completes the entry (e.g., by selecting the “Done” button). In this embodiment, the act of completing the entry launches a browser on the user's mobile device, and search results 620 are displayed in a browser window 612 the search results area 630. As used herein, the launching of a browser on a mobile terminal includes (but is not limited to) launching a mobile terminal browser where the mobile terminal browser is based on one of Gecko or WebKit.

FIG. 7 depicts a block diagram of a system to perform certain functions of a computer system. As an option, the present system 700 may be implemented in the context of the architecture and functionality of the embodiments described herein. Of course, however, the system 700 or any operation therein may be carried out in any desired environment. As shown, system 700 comprises at least one processor and at least one memory, the memory serving to store program instructions corresponding to the operations of the system. As shown, an operation can be implemented in whole or in part using program instructions accessible by a module. The modules are connected to a communication path 705, and any operation can communicate with other operations over communication path 705. The modules of the system can, individually or in combination, perform method operations within system 700. Any operations performed within system 700 may be performed in any order unless as may be specified in the claims. The embodiment of FIG. 7 implements a portion of a computer system, shown as system 700, comprising a computer processor to execute a set of program code instructions (see module 710) and modules for accessing memory to hold program code instructions to perform: receiving a dialog message from a first user device, the dialog message comprising a plurality of portions of content (see module 720); storing the dialog message from the first user device (see module 730); receiving a request from a second user's mobile terminal for the dialog message (see module 740); determining, by a computer, an additional content format at least partly based on the dialog message from the first user device (see module 750); modifying the dialog message by server-side modification of a portion of the dialog message to generate an outbound dialog message with the additional content inserted using the additional content format (see module 760); and transmitting the outbound dialog message with the inserted additional content to the second user's mobile terminal (see module 770).

FIG. 8 is a flow chart representation of a process flow 800 for server-side modification of messages during a mobile terminal message exchange. As an option, the present process flow 800 may be implemented in the context of the architecture and functionality of the embodiments described herein. Of course, however, the process flow 800 or any operation therein may be carried out in any desired environment.

The server may store a received dialog message in an internet messaging protocol format. At some point, and as seen in FIG. 8, at block 810, a dialog message may be retrieved. For example, a server (e.g., an internet messaging protocol server, an SMS server, a POP server, etc.) may receive a dialog message transmitted by a first user to a second user. At block 820, portions of content of the dialog message may be identified. For example, the dialog message in an internet messaging protocol format may comprise a table of contents (TOC) that comprises an identification of one or more types of content and a size of the content. Or, for example, the stored dialog message in an internet messaging protocol format may comprise a first portion of content (e.g., in HTML) of a size of 1 kilobyte (1024 bytes) and a second portion of text content of 240 bytes. As such, the internet messaging protocol server may scan and/or identify contents and sizes of the contents of the received dialog message in the internet messaging protocol format determined from the TOC of the dialog message. Other scans or analyses of the received dialog message may be performed (see block 820). As shown, any known techniques can be used to scan the message for content tags, and the bounds of the content can be identified.

Depending on the size allocation of the contents and sizes of the contents of the received dialog message, a portion of the dialog message may be changed. For example, an internet messaging protocol server may place the inserted additional content 150 into the content of the dialog message. As such, an internet messaging protocol server may also change the identification of the size of the content from any TOC of the dialog message to reflect the size of the inserted additional content. For example, if the TOC identifies the content portion to comprise (for example) 1 kilobyte and the additional content to be inserted by an internet messaging protocol server is (for example) 2 kilobytes, then the identification of the size of the content of the TOC may be changed and/or modified from 1 kilobyte to 2 kilobytes to account for the inserted additional content 150.

In some embodiments, the request for the dialog message may be received from a second user (e.g., a user using a mobile device). For example, the second user may correspond to a smartphone that requests the TOC information of the dialog message stored on an internet messaging protocol server. The second user may transmit a request for an identification of the portions of content of the dialog message and the corresponding sizes of the portions of the content (e.g., a dialog area, an image area, etc.) of the dialog message currently stored on an internet messaging protocol server in an internet messaging protocol format. In response, an internet messaging protocol server may transmit the TOC of any dialog messages requested by the second user. In some embodiments, the second user may then transmit a request for at least a portion of the dialog message stored on an internet messaging protocol server. For example, the second user, after receiving and/or identifying the TOC of the dialog message stored on an internet messaging protocol server, may request a part, segment, and/or portion of at least one of the identified portions of the dialog message stored on an internet messaging protocol server as identified by the TOC of the dialog message. To continue the example, the TOC may comprise an identification of a first portion of content of the dialog message stored on an internet messaging protocol server as being HTML with a size allocation of 3 kilobytes (e.g., 1 kilobyte corresponding to the HTML content of the dialog message as originally received by an internet messaging protocol server from the first user, and 2 kilobytes corresponding to the additional content inserted by an internet messaging protocol server).

In response to receiving such an identification of the contents and corresponding size allocations, the second user may request a portion of the content of the dialog message. For example, the second user may request to receive 240 bytes of the HTML content of the dialog message stored on an internet messaging protocol server. In response, an internet messaging protocol server may transmit the requested 240 bytes of the HTML content of the stored dialog message to the second user. In some embodiments, the second user may then request a further portion and/or the rest of the content from an internet messaging protocol server. In response, an internet messaging protocol server may transmit the remaining bytes (e.g., ˜2.8 kilobytes) where the remaining portion comprises the inserted additional content as inserted by an internet messaging protocol server. In some embodiments, if the second user requests a portion of the dialog message that includes some, but not all, of the inserted additional content, then a white space buffer (e.g., empty space) may be transmitted to the second user instead of a partial portion of the inserted additional content. For example, if the HTML content of the dialog message comprises 1 kilobyte of HTML content as originally sent by the first user and 2 kilobytes of the additional content (e.g., an HTML additional content) inserted by an internet messaging protocol server, and if the second user requests 1.5 kilobytes of the HTML content as identified by the TOC of the dialog message, then an internet messaging protocol server may transmit the 1 kilobyte corresponding to the content originally sent by the first user and 0.5 kilobytes of empty space or white space as a buffer. As such, in some embodiments, an internet messaging protocol server may not transmit a portion of the inserted additional content and may only transmit the full inserted additional content to the second user.

As previously mentioned, the dialog message at block 820 may be scanned for content. For example, an internet messaging protocol server may scan the dialog message for content. Then, at block 830, a reverse search of the dialog message may be performed. For example, an internet messaging protocol server may perform a reverse search for a last or final content body tag in the content of the dialog message. At block 840, additional content may be inserted into the given content of the dialog message. In some embodiments, the additional content may be inserted immediately before a last or final body tag of the dialog message. As such, the process flow 800 may be used in response to a request from a client device that does not request a TOC of a dialog message. For example, the process flow 800 may be implemented in a user's computer. In some embodiments, a user device may specify whether that user will request a TOC or will request an entire dialog message. For example, a user with a computer with a broadband connection may specify that the user will want the entire dialog message with the inserted additional content stored on an internet messaging protocol server, or that a user with a mobile device may specify to receive the TOC and a portion of the dialog message with the inserted additional content stored on an internet messaging protocol server. As such, an internet messaging protocol server may receive a notification from a user specifying how the user may request dialog messages to be transmitted from an internet messaging protocol server to the user.

Section III: Exemplary Practice of Embodiments

FIG. 9 is a schematic diagram 900 illustrating an example embodiment of an advertising network. Other embodiments that may vary, for example, in terms of arrangement or in terms of type of components, are also intended to be included within the claimed subject matter. As shown, FIG. 9 for example, includes a variety of networks such as a wide area network (WAN)/local area local area network (LAN) 905 and a wireless network 910; a variety of devices such as client devices (in the forms of a stationary platform 901, a first mobile device 902 ₁, a second mobile device 902 ₂, and another mobile device 902 ₃); and a variety of servers such as local content server 907, a remote content server 908, a virtual content server 909, and such as a search server 906.

FIG. 10 is a schematic diagram illustrating an example embodiment of a client device. A client device 1000 may include a computing device capable of sending or receiving signals such as via a wired or a wireless network. A client device may, for example, include a desktop computer or a portable device such as a cellular telephone, a smartphone, a display pager, a radio frequency (RF) device, an infrared (IR) device, a personal digital assistant (PDA), a handheld computer, a tablet computer, a laptop computer, a set top box, a wearable computer, an integrated device combining various features such as features of the forgoing devices, or the like.

A client device may vary in terms of capabilities or features. Claimed subject matter is intended to cover a wide range of potential variations. For example, a cell phone may include a numeric or other instance of a keypad 1056 or a display 1054 of limited functionality such as a monochrome liquid crystal display (LCD) for displaying text and symbols. In contrast, however, as another example, a web-enabled client device may include one or more physical or virtual keyboards, mass storage, one or more accelerometers, one or more gyroscopes, a global positioning system (e.g., GPS 1064), or other location-identifying type capability, or a display with a high degree of functionality such as a touch-sensitive color 2D or 3D display, possibly with backlighting or other illuminator 1058, or a haptic interface 1062, or another variety of input/output interface 1060, for example.

A client device may include memory 1030, possibly with a section of RAM 1032 or other memory (e.g., data storage 1044) or forms of non-volatile memory (e.g., ROM 1034) that can be accessed by a processor (e.g., a CPU 1022) and which may execute a variety of basic I/O functions (e.g., BIOS 1040) and/or may execute a variety of operating systems 1041, including a personal computer operating system such as a Windows, iOS or Linux, or a mobile operating system such as iOS, Android, or Windows Mobile, or the like. A client device may include or may execute a variety of possible applications 1042 such as a client software application enabling communication with other devices such as communicating one or more messages using a messenger application 1043, or such as via email, short message service (SMS), or multimedia message service (MMS), including via a network such as a social network, including, for example, Facebook, LinkedIn, Twitter, Flickr, or Google+, to provide only a few possible examples. A client device may also include or execute an application to communicate content such as, for example, textual content, multimedia content, or the like. A client device may also include or execute an application to perform a variety of possible tasks such as browsing using a browser 1045, searching, playing various forms of content, including locally stored or streamed video, audio (e.g., using audio interface 1052) or games (such as fantasy sports leagues), possibly including networked games or other applications using one or more instances of network interface 1050. Any of the foregoing functional blocks comprising the client device 1000 can be powered by one or more instances of a power supply 1026, and any of the foregoing functional blocks comprising the client device 1000 can communicate with any other of the foregoing functional blocks over a communication bus 1024. The foregoing is provided to illustrate that claimed subject matter is intended to include a wide range of possible features or capabilities.

FIG. 11 is a block diagram 1100 of a computer system, for implementing embodiments. FIG. 11 depicts a system for server-side modification of messages during a mobile terminal message exchange, according to some embodiments. The computer system includes nodes for client computer systems 1102 ₁ through computer system 1102 _(N), nodes for server computer systems (e.g., computer systems 1104 ₁ through computer systems 1104 _(N)), and nodes for network infrastructure (e.g., network infrastructure node 1106 ₁ through network infrastructure node 1106 _(N)), any of which nodes may comprise a machine (e.g., computer 1150) within which a set of instructions for causing the machine to perform any one of the techniques discussed above may be executed. The embodiment shown is purely exemplary, and might be implemented in the context of one or more of the figures herein.

Any node of the network may comprise a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic, discrete hardware components, or any combination thereof capable to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration, etc.).

In alternative embodiments, a node may comprise a machine in the form of a virtual machine (VM), a virtual server, a virtual client, a virtual desktop, a virtual volume, a network router, a network switch, a network bridge, a personal digital assistant (PDA), a cellular telephone, a web appliance, or any machine capable of executing a sequence of instructions that specify actions to be taken by that machine. Any node of the network may communicate cooperatively with another node on the network. In some embodiments, any node of the network may communicate cooperatively with every other node of the network. Further, any node or group of nodes on the network may comprise one or more computer systems (e.g., a client computer system, a server computer system) and/or may comprise one or more embedded computer systems (including a processor and memory), a massively parallel computer system, and/or a cloud computer system.

The computer system (e.g., computer 1150) includes a processor 1108 (e.g., a processor core, a microprocessor, a computing device, etc.), a main memory 1110 (e.g., computer memory), and a static memory 1112, which communicate with each other via a system bus 1114. The computer 1150 may further include a display unit (e.g., computer display 1116) that may comprise a touch screen, or a liquid crystal display (LCD), or a light emitting diode (LED) display, or a cathode ray tube (CRT). As shown, the computer system also includes a human input/output (I/O) device 1118 (e.g., a keyboard, an alphanumeric keypad, etc.), a pointing device 1120 (e.g., a mouse, a touch screen, etc.), a drive unit 1122 (e.g., a disk drive unit, a CD/DVD drive, a tangible computer readable removable media drive, an SSD storage device, etc.), a signal generation device 1128 (e.g., a speaker, an audio output, etc.), and a network interface device 1130 (e.g., an ethernet interface, a wired network interface, a wireless network interface, a propagated signal interface, etc.).

The drive unit 1122 includes a machine-readable medium 1124 on which is stored a set of instructions (i.e., software, firmware, middleware, etc.) 1126 embodying any one, or all, of the methodologies described above. The set of instructions 1126 is also shown to reside, completely or at least partially, within the main memory and/or within the processor 1108. The set of instructions 1126 may further be transmitted or received via the network interface device 1130 over the system bus 1114.

It is to be understood that embodiments of this disclosure may be used as, or to support, a set of instructions executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine- or computer-readable medium. A machine-readable medium includes any mechanism for storing non-transitory information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; and electrical, optical or acoustical or any other type of media suitable for storing non-transitory information.

While the figures and description have been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the claimed embodiments can be differently embodied in other specific forms without departing from the scope of the claims. 

I claim:
 1. A method comprising: receiving, by a processor, a dialog message from a first user device, the dialog message comprising a plurality of portions of content; storing, by the processor, the dialog message from the first user device; receiving, by the processor, a request from a second user's mobile terminal for the dialog message; determining, by the processor, an additional content format at least partly based on the dialog message from the first user device, the determining of the additional content format comprising determining based on analysis of a markup language description for the dialog message; modifying, by the processor, the dialog message by server-side modification of a portion of the dialog message to generate an outbound dialog message with additional content inserted using the additional content format, the additional content based on terms present in the dialog message and comprising an advertisement, the modifying of the dialog message further comprising changing the size of the portion of the dialog message based on a size of the inserted additional content; and transmitting, by the processor, the outbound dialog message with the inserted additional content to the second user's mobile terminal.
 2. The method as set forth in claim 1, wherein the additional content comprises at least one of, a video clip, a financial quote, a news clip, a photo, or a social media alert.
 3. The method as set forth in claim 1, wherein storing the dialog message comprises storing the dialog message in at least one of, an Internet Message Access Protocol (IMAP) format, or a Short Message Service (SMS) format.
 4. The method as set forth in claim 1, further comprising launching a mobile terminal browser.
 5. A computer system comprising: a computer processor to execute a set of program code instructions; and a storage medium for tangibly storing thereon the program code instructions, in which the program code instructions comprises program code to perform: receiving a dialog message from a first user device, the dialog message comprising a plurality of portions of content; storing the dialog message from the first user device; receiving a request from a second user's mobile terminal for the dialog message; determining an additional content format at least partly based on the dialog message from the first user device, the determining of the additional content format comprising determining based on analysis of a markup language description for the dialog message; modifying the dialog message by server-side modification of a portion of the dialog message to generate an outbound dialog message with additional content inserted using the additional content format, the additional content based on terms present in the dialog message and comprising an advertisement, the modifying of the dialog message further comprising changing the size of the portion of the dialog message based on a size of the inserted additional content; and transmitting the outbound dialog message with the inserted additional content to the second user's mobile terminal.
 6. The computer system as set forth in claim 5, wherein the additional content comprises at least one of, a video clip, a financial quote, a news clip, a photo, or a social media alert.
 7. The computer system as set forth in claim 5, wherein storing the dialog message comprises storing the dialog message in at least one of, an Internet Message Access Protocol (IMAP) format, or a Short Message Service (SMS) format.
 8. The computer system as set forth in claim 5, further comprising launching a mobile terminal browser.
 9. A non-transitory computer readable storage medium, the computer readable storage medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to execute a method comprising: receiving, by the processor, a dialog message from a first user device, the dialog message comprising a plurality of portions of content; storing, by the processor, the dialog message from the first user device; receiving, by the processor, a request from a second user's mobile terminal for the dialog message; determining, by the processor, an additional content format at least partly based on the dialog message from the first user device, the determining of the additional content format comprising determining based on analysis of a markup language description for the dialog message; modifying, by the processor, the dialog message by server-side modification of a portion of the dialog message to generate an outbound dialog message with additional content inserted using the additional content format, the additional content based on terms present in the dialog message and comprising an advertisement, the modifying of the dialog message further comprising changing the size of the portion of the dialog message based on a size of the inserted additional content; and transmitting, by the processor, the outbound dialog message with the inserted additional content to the second user's mobile terminal.
 10. The medium as set forth in claim 9, wherein the additional content comprises at least one of, a video clip, a financial quote, a news clip, a photo, or a social media alert.
 11. The medium as set forth in claim 9, wherein storing the dialog message comprises storing the dialog message in at least one of, an Internet Message Access Protocol (IMAP) format, or a Short Message Service (SMS) format.
 12. The medium as set forth in claim 9, further comprising launching a mobile terminal browser. 